// 监听新标签页的创建
chrome.tabs.onCreated.addListener((tab) => {
  injectAlertDisabler(tab.id);
});

// 监听标签页的更新
chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
  if (changeInfo.status === 'loading') {
    injectAlertDisabler(tabId);
  }
});

// 注入禁用代码的函数
function injectAlertDisabler(tabId) {
  chrome.scripting.executeScript({
    target: { tabId: tabId },
    func: () => {
      // 在页面上下文中执行的代码
      const disableAlert = () => {
        try {
          Object.defineProperty(window, 'alert', {
            configurable: false,
            enumerable: false,
            writable: false,
            value: function() {
              console.log('Alert被禁用了');
              return undefined;
            }
          });
        } catch(e) {
          window.alert = function() {
            console.log('Alert被禁用了');
            return undefined;
          };
        }
      };

      // 立即执行
      disableAlert();
      
      // 监听页面加载完成
      if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', disableAlert);
      }
      window.addEventListener('load', disableAlert);
    },
    world: 'MAIN'  // 在主世界中执行以确保能访问到原始的 window 对象
  });
} 